//
//  WBNavigationController.swift
//  WinsonWeibo
//
//  Created by Administrator on 2017/4/14.
//  Copyright © 2017年 Winson. All rights reserved.
//

import UIKit

class WBNavigationController: UINavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // 隐藏navigationBar
        navigationBar.isHidden = true
    }


    /// 重写push方法， 所有的push动作都会调用次方法
    ///
    /// - Parameters:
    ///   - viewController: 要 push 的 ViewController
    ///   - animated: 是否动画

    override func pushViewController(_ viewController: UIViewController, animated: Bool) {

        //  如果不是栈底控制器才需要隐藏，根控制器不需要处理
        // 隐藏底部tabbar
        if childViewControllers.count > 0 {
            viewController.hidesBottomBarWhenPushed = true

            // 设置返回按钮
            // 说明： 当push到第二层的时候， 第二层的viewController的返回按钮显示的为底层viewcontroller的标题， 
            // 之后的都显示为 “返回”

            var title = "返回"

            // 判断当前navigationController的级数
            if childViewControllers.count == 1 {
                title = childViewControllers.first?.title ?? "返回"
            }

            // 设置返回按钮
            if let vc = viewController as? WBBaseViewController {

                vc.naviItem.leftBarButtonItem = UIBarButtonItem(title: title, target: self, action: #selector(popToParent), isBack:true)
            }
        }
        super.pushViewController(viewController, animated: animated)

    }

    @objc private func popToParent() {
        popViewController(animated: true)
    }
}


